38. 外观数列

38. 外观数列

Similar Question

Solution Tips

方案一: 模拟 + 递归

var countAndSay = function(n) {

    return recursive(n - 1, '1');

    function recursive(n, str) {
        if (n > 0) {
            let curNum = str[0];
            let count = 1;
            let nextStr = '';
            for (let i = 1; i < str.length; i++) {
                if (curNum === str[i]) {
                    count++;
                }
                else {
                    nextStr += `${count}${curNum}`
                    curNum = str[i];
                    count = 1;
                }
            }
            // 对最后一个数进行拼接
            nextStr += `${count}${curNum}`


            return recursive(n - 1, nextStr)
        }
        else {
            return str;
        }
    }
};